package jp.co.ikd.util;

public class Util {

	/**
	 * バイト配列を16進数の文字列に変換する。
	 *
	 * @param bytes
	 *            バイト配列
	 * @return 16進数の文字列
	 */
	public static String asHex(byte bytes[]) {

		if(bytes == null){
			return null;
		}

		// バイト配列の２倍の長さの文字列バッファを生成。
		StringBuffer strbuf = new StringBuffer(bytes.length * 2);

		// バイト配列の要素数分、処理を繰り返す。
		for (int index = 0; index < bytes.length; index++) {
			// バイト値を自然数に変換。
			int bt = bytes[index] & 0xff;

			// バイト値が0x10以下か判定。
			if (bt < 0x10) {
				// 0x10以下の場合、文字列バッファに0を追加。
				strbuf.append("0");
			}

			// バイト値を16進数の文字列に変換して、文字列バッファに追加。
			strbuf.append(Integer.toHexString(bt));
		}

		// / 16進数の文字列を返す。
		return strbuf.toString();
	}
}
